﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class DangKi2 : System.Web.UI.Page
{
    const string passwordQuestion = "Màu bạn thích nhất";
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public bool IsValidEmail(string email)
    {
        bool IsValidEmail = false;
        IsValidEmail = Regex.IsMatch(email,
            @"\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-|_)" + 
            @"[A-Za-z0-9]+)*\.([A-Za-z]{2,4})$");
        if(IsValidEmail)
        {
            return true;
        }
        return false;
    }

    public bool ValidateLogin()
    {
        if(txtTenDangNhap.Text.Equals(""))
        {
            CreateAccountResults.Text = "Vui lòng nhập vào tên đăng nhập!";
            return false;

        }
        if (txtEmail.Text.Equals(""))
        {
            CreateAccountResults.Text = "Vui lòng nhập vào địa chỉ mail!";
            return false;

        }
        else
        {
            if(!IsValidEmail(txtEmail.Text))
            {
                CreateAccountResults.Text = "Địa chỉ mail không hợp lệ, Email phải có định dạng sau: someone@domain.type!";
                return false;
            }
        }
        if (txtMatKhau.Text.Equals(""))
        {
            CreateAccountResults.Text = "Vui lòng nhập vào mật khẩu!";
            return false;

        }
        if (txtXacNhanMatKhau.Text.Equals(""))
        {
            CreateAccountResults.Text = "Vui lòng nhập vào xác nhận mật khẩu!";
            return false;

        }
        if(txtMatKhau.Text != txtXacNhanMatKhau.Text)
        {
            CreateAccountResults.Text = "Mật khẩu và xác nhận mật khẩu không hợp lệ!";
            return false;
        }
        return true;
    }

    protected void btnDangKí_Click(object sender, EventArgs e)
    {
        if(!ValidateLogin())
        {
            return;
        }
        MembershipCreateStatus createStatus; 
        MembershipUser newUser = 
            Membership.CreateUser(txtTenDangNhap.Text, txtMatKhau.Text, txtEmail.Text, passwordQuestion,"màu hồng", true, out createStatus); 
        switch (createStatus) { 
            case MembershipCreateStatus.Success:
                Roles.AddUserToRole(txtTenDangNhap.Text,"Customer");
                Session.Add("g_strUserName", txtTenDangNhap.Text);
                Response.Redirect("HoanTatDangKi.aspx");
                break; 
            case MembershipCreateStatus.DuplicateUserName:
                CreateAccountResults.Text = "Người dùng này đã tồn tại, vui lòng nhập vào tên người dùng khác!"; 
                break; 
            case MembershipCreateStatus.DuplicateEmail:
                CreateAccountResults.Text = "Địa chỉ Email bạn vừa nhập vào đã tồn tại, vui lòng nhập địa chỉ email khác!"; 
                break;
            case MembershipCreateStatus.InvalidEmail:
                CreateAccountResults.Text = "Địa chỉ Email không hợp lệ, vui lòng nhập lại.";
                break;
            case MembershipCreateStatus.InvalidPassword:
                CreateAccountResults.Text = "Mật khẩu phải có độ dài ít nhất 7 kí tự. Trong đó có 1 kí tự Alpha (~@#$%^&*).";
                break;
            default:
                CreateAccountResults.Text = "Có 1 lỗi gì đó, tài khoản của bạn chưa được khởi tạo."; 
                break; 
        } 
    }
}
